﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ST.Application.MenuServices.Dtos;
using ST.Domain;

namespace ST.Application.MenuServices
{
    public interface IMenuService
    {
        Task<List<MenuDto>> GetAllListAsync();
        Task<PagedList<MenuDto>> GetMenusByParent(Guid parentId, int startPage, int pageSize);
        Task<bool> InsertAsync(MenuDto dto);
        Task<bool> UpdateAsync(MenuDto dto);
        Task DeleteBatchAsync(List<Guid> ids);
        Task DeleteAsync(Guid id);
        Task<MenuDto> GetAsync(Guid id);

        /// <summary>
        ///     根据用户获取功能菜单
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <returns></returns>
        Task<List<MenuDto>> GetMenusByUser(Guid userId);
    }
}